﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace Marmat.Foundation
{
    /// <summary>
    /// 权限界面对菜单的支持。
    /// </summary>
    public interface IPermissionMenuManager
    {

        /// <summary>
        /// 获取所有的菜单集合
        /// </summary>
        /// <returns></returns>
        IEnumerable<IMenu> GetMenuCollection();

        ///// <summary>
        ///// 获取默认用户的菜单集合
        ///// </summary>
        ///// <returns></returns>
        //IEnumerable<IMenu> GetDefaultMenuCollection();

        /// <summary>
        /// 获取指定角色授权的菜单集合。
        /// </summary>
        /// <returns></returns>
        IEnumerable<IMenu> GetRoleMenuCollection(string role_id);

        ///// <summary>
        ///// 给指定的角色添加菜单。
        ///// </summary>
        ///// <param name="menu_ids">菜单id的集合</param>
        //void AddDefaultRoleMenuCollection(string[] menu_ids);

        /// <summary>
        /// 给指定的角色添加菜单。
        /// </summary>
        /// <param name="role_id">角色id</param>
        /// <param name="menu_ids">菜单id的集合</param>
        void AddRoleMenuCollection(string role_id, string[] menu_ids);

        ///// <summary>
        ///// 移除默认用户的菜单。
        ///// </summary>
        ///// <param name="menu_ids">菜单id的集合</param>
        //void RemoveDefaultRoleMenuCollection(string[] menu_ids);

        /// <summary>
        /// 移除指定角色的菜单。
        /// </summary>
        /// <param name="role_id">角色id</param>
        /// <param name="menu_ids">菜单id的集合</param>
        void RemoveRoleMenuCollection(string role_id, string[] menu_ids);
    }
}
